package cn.demoncat.util.pdf.itextpdf.entity;

import cn.demoncat.util.lang.constant.StringConstant;

/**
 * 签名区
 * 
 * @author 延晓磊
 *
 * @since 2020年6月6日
 */
public class PdfSignArea {

	/**
	 * 页码：默认尾页
	 */
	private Integer page;
	/**
	 * 页面左下角x偏移
	 */
	private float x;
	/**
	 * 页面左下角y偏移
	 */
	private float y;
	/**
	 * 图表宽：默认为图片实际宽
	 */
	private Float width;
	/**
	 * 图片高：默认为图片实际高
	 */
	private Float height;
	/**
	 * 签名信息：原因
	 */
	private String reason = StringConstant.EMPTY;
	/**
	 * 签名信息：位置
	 */
	private String location = StringConstant.EMPTY;


	/**
	 * 签名区
	 * 
	 * @param x
	 *            页面左下角x偏移
	 * @param y
	 *            页面左下角y偏移
	 * 
	 * @author 延晓磊
	 *
	 * @since 2020年6月6日
	 */
	public static PdfSignArea build(float x, float y) {
		PdfSignArea area = new PdfSignArea();
		area.setX(x);
		area.setY(y);
		return area;
	}

	/**
	 * 指定页码
	 * 
	 * @param page	页码：默认尾页
	 * @return
	 * 
	 * @author 延晓磊
	 *
	 * @since 2020年6月6日
	 */
	public PdfSignArea page(Integer page) {
		this.page = page;
		return this;
	}

	/**
	 * 指定宽高
	 * 
	 * @param width
	 *            图表宽：默认为图片实际宽
	 * @param height
	 *            图片高：默认为图片实际高
	 * 
	 * @author 延晓磊
	 *
	 * @since 2020年6月6日
	 */
	public PdfSignArea width(float width, float height) {
		this.width = width;
		this.height = height;
		return this;
	}

	/**
	 * 指定宽度，高度等比例缩放
	 * 
	 * @param width
	 *            图表宽：默认为图片实际宽
	 * 
	 * @author 延晓磊
	 *
	 * @since 2020年6月6日
	 */
	public PdfSignArea width(float width) {
		this.width = width;
		return this;
	}
	
	/**
	 * 签名信息
	 * 
	 * @param reason	原因
	 * @param location	位置
	 * @return
	 * 
	 * @author 延晓磊
	 *
	 * @since 2020年6月6日
	 */
	public PdfSignArea addInfo(String reason, String location) {
		this.reason = reason;
		this.location = location;
		return this;
	}
	
	public Integer getPage() {
		return page;
	}

	public void setPage(Integer page) {
		this.page = page;
	}

	public float getX() {
		return x;
	}

	public void setX(float x) {
		this.x = x;
	}

	public float getY() {
		return y;
	}

	public void setY(float y) {
		this.y = y;
	}

	public Float getWidth() {
		return width;
	}

	public void setWidth(Float width) {
		this.width = width;
	}

	public Float getHeight() {
		return height;
	}

	public void setHeight(Float height) {
		this.height = height;
	}
	
	public String getReason() {
		return reason;
	}

	public void setReason(String reason) {
		this.reason = reason;
	}

	public String getLocation() {
		return location;
	}

	public void setLocation(String location) {
		this.location = location;
	}
}
